一覧に戻る

配列の要素の順番をランダムに並べ替える

#Swift

ググっても解決しなくて四苦八苦して書きました。備忘録として保存しておきます。 配列を渡すとシャッフルされた配列を返すメソッドです。 引数も返り値もNSMutableArray型です。 引数として渡した配列は要素がゼロの空の配列になります。(仕様です)

func shuffle(arrayA:NSMutableArray)->NSMutableArray{
    let arrayCount = arrayA.count
    var arrayB:NSMutableArray = []
    for var i = 0; i < arrayCount; i++ {
        var randNum = Int(arc4random())%(arrayCount - i)
        arrayB.addObject(arrayA[randNum])
        arrayA.removeObjectAtIndex(randNum)
        
    }
    return arrayB
}